1
Au-delà des paires : Regroupement multi-type avec les tuples
AI037Lesson 19
00:00

Dans l'architecture des systèmes C++ à grande échelle, définir un struct formel pour chaque regroupement temporaire de données est souvent excessif. Le std::tuple agit comme un conteneur hétérogène, généralisant std::pair pour contenir un nombre arbitraire de types distincts.

1. Construction et contraintes

Contrairement aux conteneurs standards, le tuple constructeur est explicite. Vous ne pouvez pas utiliser une initialisation par copie avec une liste ; vous devez utiliser une initialisation directe ou std::make_tuple.

tuple<int, double> t1{1, 2.5}; // OK
tuple<int, double> t2 = {1, 2.5}; // Erreur !

2. Accès et introspection

Les membres sont accessibles via get<i>(nom_tuple), où i doit être une expression constante connue à la compilation. Les métadonnées peuvent être interrogées via tuple_size et tuple_element en utilisant decltype.

Disposition mémoire de std::tuplechaîneget<0>entierget<1>doubleget<2>

3. Logique relationnelle

Les tuples sont comparés lexicographiquement. La comparaison n'est valable que si les deux tuples ont le même nombre d'éléments et que leurs types correspondants prennent en charge les opérateurs relationnels.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>